HTTP streaming is a method of file based streaming of live or on-demand content between entities, such as e.g. from a server or an intermediate network node to a client. A HTTP streaming enabled client requiring content to be uploaded first acquires a list of small files or segments of files, which together make up a stream for, or a description of, particular, required content by fetching it from a server or any other network node. Such a list is typically referred to as a Media Presentation Description (MPD). In the present context we use the term MPD synonymously also for Playlist and Manifest. A playlist may be described in M3U8 format or as a list provided in XML format.
At each point of time there may be multiple small files, or segments of files, from hereinafter referred to as media segments that can be chosen between by a client. HTTP streaming can either be template based or playlist based. In template based HTTP streaming, requested URLs are described in the MPD using a template, which can e.g. be of the type:    www.server.com/streamfile/$Rep$/$Index$/
where $Rep$ is replaced by a requested representation and $Index$ is replaced by a sequence number, which is used to determine the time at which the media segment is requested.
In playlist based HTTP streaming, each media segment and each time has its own URL, such as e.g.:
Video time 0
    ->URLs associated with Video time 0Video time 1    ->URLs associated with Video time 1Video time 2    ->URLs associated with Video time 2
Known MPD structures are however very strict, thereby allowing a very small amount of flexibility, especially when it comes to content which is accessible from different content sources and/or content which may have different characteristics over time.